Oracle 大量新增帳號方式
二、需要利用Toad 工具修改Oracle資料庫帳號相關設定。
本案例當此帳號密碼過期使用者被鎖定時候,必須使用底下指令修改解鎖及修改密碼
/* 修改帳號解鎖,注意員工編號必須“員工編號” */
alter user “員工編號” account unlock;
/* 修改帳號密碼,注意密碼有區分大小寫 */
alter user “員工編號” identified by “新密碼”;
commit;
三、若是需要大量修改使用者解鎖/上鎖或統一修改密碼,請參照底下語法,提供大量帳號修改方法,產生Alter user 指令碼:
/* 修改大量帳號觧鎖方式 */
select 'alter user ' ||'"' || username || '"' ||
' account unlock;'
from dba_users where account_status <> 'OPEN'
/* 修改大量帳號密碼方式 */
select 'alter user ' || '"'|| username ||'"'||
' identified by "sysgration"' || password || ';'
from dba_users where account_status <> 'OPEN'
四、將修改大量解鎖使用者帳號語法,貼在Toad工具裡面,執行後會產生下列alter語法
五、在Toad Data Grid 中按右鍵選擇Export Dataset
六、選擇要匯出的位置及檔名
七、開啟剛剛Export匯出的EXCEL檔案,整理不需的帳號請注意要選擇對正確帳號,不要選擇錯誤整理完成後,將需要的帳號複製起來
八、將EXCEL複製內容,貼在Toad 裡面,請確認你要修改的區域,確認欲修改的內容無誤後在Toad 按功能鍵F5 執行,完成後請注意要Commit,才代表修改完成,完成後你會發現所有預想解鎖之帳號已經完成無誤。
九、修改密碼方式如同四~八處理方式,只是語法不同請注意。
建一個Table放使用者名稱跟密碼,然後用SELECT串接字串,產生.
這樣就不必再用Excel啦.
Oracle自己就資料庫啦.
謝謝你的建議。
Oracle 為何要大量新增帳號?
任何的資料庫, 應該都不是讓每一個員工進去直接存取的吧?
而是透過Web應用程式或Windows應用程式去間接使用資料庫
怪怪的?
nickliao1 大師
會讓 user 大量直接使用 oracle db 帳號
真不簡單可能是練習中心................
在大型團隊裡 iDempiere 或是 Oracle ERP Database 開發機 :: 有可能
在大型團隊裡 iDempiere 或是 Oracle ERP Database 測試機 :: 不太可能
在大型團隊裡 iDempiere 或是 Oracle ERP Database 正式機 :: 絕對不可能
不小心看到了
原來是 ARGOERP 快暈倒了
土產 ERP 還是要提昇一下
不同專案有不同開發團隊成員自動開
CURSOR Cur_User (p_project_name VARCHAR2) IS
SELECT username,password,default_ts,temp_ts,default_ts
FROM ibm_oracle_erp_dev_team
WHERE project_name=p_project_name;
FOR p IN Cur_User LOOP
v_CreateUser :=
'CREATE USER '||p.username||' IDENTIFIED BY '||p.password
|| ' DEFAULT TABLESPACE '||p.default_ts
|| ' TEMPORARY TABLESPACE '||p.temp_ts
|| ' QUOTA UNLIMITED ON '||p.default_ts
|| ' ACCOUNT UNLOCK';
EXECUTE IMMEDIATE (v_CreateUser);
-- Grant permissions
EXECUTE IMMEDIATE ('GRANT create session TO '||p.username);
EXECUTE IMMEDIATE ('GRANT connect TO '||p.username);
EXECUTE IMMEDIATE ('GRANT create procedure TO '||p.username);
EXECUTE IMMEDIATE ('GRANT execute ON utl_ref TO '||p.username);
EXECUTE IMMEDIATE ('GRANT create trigger TO '||p.username);
EXECUTE IMMEDIATE ('GRANT resource TO '||username);
END LOOP;